package com.itlong.cloud.property.service;

import com.itlong.cloud.POJO.DTO.property.PropertyPadListDTO;
import com.itlong.cloud.POJO.VO.property.PropertyPadGetOneVO;
import com.itlong.cloud.POJO.VO.property.PropertyPadListVO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;
import java.util.Set;

/**
 * <desc>
 *      物业-平板业务处理接口
 * </desc>
 *
 * @createDate 2019/01/17
 */
public interface IPropertyPadService {
    /**
     * <desc>
     *      获取人脸平板列表
     * </desc>
     *
     * @param dto
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    Page<PropertyPadListVO> getList(PropertyPadListDTO dto) throws Exception;

    /**
     * <desc>
     *      删除设备
     * </desc>
     *
     * @param deviceUnique
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    Integer delete(String deviceUnique) throws Exception;

    /**
     * <desc>
     *      获取单个平板信息
     * </desc>
     *
     * @param deviceUnique
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    PropertyPadGetOneVO getOne(String deviceUnique) throws Exception;

    /**
     * <desc>
     *     添加平板信息
     * </desc>
     *
     * @param vo
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    String add(PropertyPadGetOneVO vo) throws Exception;

    /**
     * <desc>
     *      修改平板
     * </desc>
     *
     * @param vo
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    String update(PropertyPadGetOneVO vo) throws Exception;

    /**
     * <desc>
     *     添加时检测机号是否重复
     * </desc>
     *
     * @param projectId
     * @param deviceId
     * @return
     * @author Jiaqi.X
     * @createDate 2019/01/17
     */
    Integer checkPadDeviceRepeat(String projectId, String deviceId,Integer type);

    /**
     * <desc>
     *      根据deviceUnique找出绑定该设备的平板设备
     * </desc>
     *
     * @return
     * @Author Zhu.yj
     * @createDate  2019/12/17
     */
    List<String> getPadDeviceUniqueByBindDevice(String deviceUnique) throws Exception;

    /**
     * <desc>
     *      更改平板设备地址
     * </desc>
     *
     * @return
     * @Author Zhu.yj
     * @createDate  2019/12/17
     */
    Integer updatePadAddress(String newUnitIdStr, String deviceUnique, List<String> padDeviceUniqueList, String projectId) throws Exception;
}
